package sixth.group.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class OrderinfExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OrderinfExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andOidIsNull() {
            addCriterion("oid is null");
            return (Criteria) this;
        }

        public Criteria andOidIsNotNull() {
            addCriterion("oid is not null");
            return (Criteria) this;
        }

        public Criteria andOidEqualTo(Integer value) {
            addCriterion("oid =", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidNotEqualTo(Integer value) {
            addCriterion("oid <>", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidGreaterThan(Integer value) {
            addCriterion("oid >", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidGreaterThanOrEqualTo(Integer value) {
            addCriterion("oid >=", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidLessThan(Integer value) {
            addCriterion("oid <", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidLessThanOrEqualTo(Integer value) {
            addCriterion("oid <=", value, "oid");
            return (Criteria) this;
        }

        public Criteria andOidIn(List<Integer> values) {
            addCriterion("oid in", values, "oid");
            return (Criteria) this;
        }

        public Criteria andOidNotIn(List<Integer> values) {
            addCriterion("oid not in", values, "oid");
            return (Criteria) this;
        }

        public Criteria andOidBetween(Integer value1, Integer value2) {
            addCriterion("oid between", value1, value2, "oid");
            return (Criteria) this;
        }

        public Criteria andOidNotBetween(Integer value1, Integer value2) {
            addCriterion("oid not between", value1, value2, "oid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridIsNull() {
            addCriterion("ocustomerid is null");
            return (Criteria) this;
        }

        public Criteria andOcustomeridIsNotNull() {
            addCriterion("ocustomerid is not null");
            return (Criteria) this;
        }

        public Criteria andOcustomeridEqualTo(Integer value) {
            addCriterion("ocustomerid =", value, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridNotEqualTo(Integer value) {
            addCriterion("ocustomerid <>", value, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridGreaterThan(Integer value) {
            addCriterion("ocustomerid >", value, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridGreaterThanOrEqualTo(Integer value) {
            addCriterion("ocustomerid >=", value, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridLessThan(Integer value) {
            addCriterion("ocustomerid <", value, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridLessThanOrEqualTo(Integer value) {
            addCriterion("ocustomerid <=", value, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridIn(List<Integer> values) {
            addCriterion("ocustomerid in", values, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridNotIn(List<Integer> values) {
            addCriterion("ocustomerid not in", values, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridBetween(Integer value1, Integer value2) {
            addCriterion("ocustomerid between", value1, value2, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOcustomeridNotBetween(Integer value1, Integer value2) {
            addCriterion("ocustomerid not between", value1, value2, "ocustomerid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidIsNull() {
            addCriterion("oresaurantid is null");
            return (Criteria) this;
        }

        public Criteria andOresaurantidIsNotNull() {
            addCriterion("oresaurantid is not null");
            return (Criteria) this;
        }

        public Criteria andOresaurantidEqualTo(Integer value) {
            addCriterion("oresaurantid =", value, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidNotEqualTo(Integer value) {
            addCriterion("oresaurantid <>", value, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidGreaterThan(Integer value) {
            addCriterion("oresaurantid >", value, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidGreaterThanOrEqualTo(Integer value) {
            addCriterion("oresaurantid >=", value, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidLessThan(Integer value) {
            addCriterion("oresaurantid <", value, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidLessThanOrEqualTo(Integer value) {
            addCriterion("oresaurantid <=", value, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidIn(List<Integer> values) {
            addCriterion("oresaurantid in", values, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidNotIn(List<Integer> values) {
            addCriterion("oresaurantid not in", values, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidBetween(Integer value1, Integer value2) {
            addCriterion("oresaurantid between", value1, value2, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOresaurantidNotBetween(Integer value1, Integer value2) {
            addCriterion("oresaurantid not between", value1, value2, "oresaurantid");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueIsNull() {
            addCriterion("ototalvalue is null");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueIsNotNull() {
            addCriterion("ototalvalue is not null");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueEqualTo(Integer value) {
            addCriterion("ototalvalue =", value, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueNotEqualTo(Integer value) {
            addCriterion("ototalvalue <>", value, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueGreaterThan(Integer value) {
            addCriterion("ototalvalue >", value, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueGreaterThanOrEqualTo(Integer value) {
            addCriterion("ototalvalue >=", value, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueLessThan(Integer value) {
            addCriterion("ototalvalue <", value, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueLessThanOrEqualTo(Integer value) {
            addCriterion("ototalvalue <=", value, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueIn(List<Integer> values) {
            addCriterion("ototalvalue in", values, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueNotIn(List<Integer> values) {
            addCriterion("ototalvalue not in", values, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueBetween(Integer value1, Integer value2) {
            addCriterion("ototalvalue between", value1, value2, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtotalvalueNotBetween(Integer value1, Integer value2) {
            addCriterion("ototalvalue not between", value1, value2, "ototalvalue");
            return (Criteria) this;
        }

        public Criteria andOtimeIsNull() {
            addCriterion("otime is null");
            return (Criteria) this;
        }

        public Criteria andOtimeIsNotNull() {
            addCriterion("otime is not null");
            return (Criteria) this;
        }

        public Criteria andOtimeEqualTo(Date value) {
            addCriterion("otime =", value, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeNotEqualTo(Date value) {
            addCriterion("otime <>", value, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeGreaterThan(Date value) {
            addCriterion("otime >", value, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("otime >=", value, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeLessThan(Date value) {
            addCriterion("otime <", value, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeLessThanOrEqualTo(Date value) {
            addCriterion("otime <=", value, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeIn(List<Date> values) {
            addCriterion("otime in", values, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeNotIn(List<Date> values) {
            addCriterion("otime not in", values, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeBetween(Date value1, Date value2) {
            addCriterion("otime between", value1, value2, "otime");
            return (Criteria) this;
        }

        public Criteria andOtimeNotBetween(Date value1, Date value2) {
            addCriterion("otime not between", value1, value2, "otime");
            return (Criteria) this;
        }

        public Criteria andOuptimeIsNull() {
            addCriterion("ouptime is null");
            return (Criteria) this;
        }

        public Criteria andOuptimeIsNotNull() {
            addCriterion("ouptime is not null");
            return (Criteria) this;
        }

        public Criteria andOuptimeEqualTo(Date value) {
            addCriterion("ouptime =", value, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeNotEqualTo(Date value) {
            addCriterion("ouptime <>", value, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeGreaterThan(Date value) {
            addCriterion("ouptime >", value, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeGreaterThanOrEqualTo(Date value) {
            addCriterion("ouptime >=", value, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeLessThan(Date value) {
            addCriterion("ouptime <", value, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeLessThanOrEqualTo(Date value) {
            addCriterion("ouptime <=", value, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeIn(List<Date> values) {
            addCriterion("ouptime in", values, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeNotIn(List<Date> values) {
            addCriterion("ouptime not in", values, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeBetween(Date value1, Date value2) {
            addCriterion("ouptime between", value1, value2, "ouptime");
            return (Criteria) this;
        }

        public Criteria andOuptimeNotBetween(Date value1, Date value2) {
            addCriterion("ouptime not between", value1, value2, "ouptime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}